package com.acmen.ump.core.dto;

import lombok.Getter;

/**
 * @author Acmen
 * @ClassName ApiResponseErrorCode.java
 * @Description ApiResponseCode定义
 * @CreateTime 2019年08月23日 14:48:54
 */
@Getter
public enum  ApiResponseErrorCode {

    // @formatter:off
    CODE_0(0, "成功"),
    CODE_101(101, "参数错误"),
    CODE_102(102, "文件错误"),
    CODE_103(103, "内部异常"),
    CODE_403(104, "认证未通过/拒绝访问"),
    CODE_999(999, "未知异常");

    /**
     * 编号
     */
    private Integer code;

    /**
     * 编号信息
     */
    private String message;

    /**
     * 构造器
     *
     * @param code
     * @param message
     */
    private ApiResponseErrorCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 通过编号获取枚举对象
     *
     * @param message
     */
    public static ApiResponseErrorCode getByMessage(String message) {
        for (ApiResponseErrorCode item : ApiResponseErrorCode.values()) {
            if (item.getMessage().equals(message)) {
                return item;
            }
        }
        return null;
    }

    /**
     * 通过编号信息获取枚举对象
     *
     * @param code
     */
    public static ApiResponseErrorCode getByCode(String code) {
        for (ApiResponseErrorCode item : ApiResponseErrorCode.values()) {
            if (item.getCode().equals(code)) {
                return item;
            }
        }
        return null;
    }
}
